Texture images are a simple yet effective way to increase realism of polygonal meshes at low cost. Most current hardware graphics accelerators provide a memory cache to store texture images. Images in the cache can be accessed by the Graphics Processing Unit (GPU) through a high-bandwidth connection, improving frame rate. However, the size of the cache is limited by its cost, especially in commercial game-oriented graphics boards and game consoles. Because not all textures used by an application can reside in memory at the same time, complex memory management algorithms need to be used. In high-end applications, such as flight simulators, where larger caches are available, the amount of textures employed increases proportionally, requiring the same careful allocation of texture memory.
Image compression can alleviate the problem of limited texture memory. However, to obtain interactive frame rates, the compressed texture must be decoded on the fly during rendering, which requires specialized hardware. To optimally use texture memory available on today's traditional graphics boards, several authors have looked at the problem of reducing the space required to store the texture image, without resorting to complicated encoding.
Except for simple textures containing repetitive patterns, details are typically not uniformly distributed across the image. For example, models obtained with 3D scanning systems are often textured with images that contain a large amount of background pixels. Faces of humans and characters need high-resolution details in areas such as the eyes and mouth, while the appearance of other regions can be captured with relatively fewer pixels per unit area.